//	---------------------------------------------------------------------------
//
//	@file		TwSimpleDX11.hlsl
//	@brief		Shaders used by the TwSimpleDX11 example
//
//	---------------------------------------------------------------------------

cbuffer Constants : register(b0)
{
	row_major float4x4 g_WorldViewProj;
	row_major float4x4 g_WorldNorm;
	float3 g_LightDir;
	float g_LightCoeff;
};

struct PSInput
{
	float4 Pos : SV_POSITION;
	float4 Color : COLOR0;
};

PSInput MainVS(float4 pos : POSITION, float3 norm : NORMAL, float4 color : COLOR)
{
	PSInput ps;
	ps.Pos = mul(pos, g_WorldViewProj);
	float3 n = normalize(mul(float4(norm, 0), g_WorldNorm).xyz);
	ps.Color.rgb = color.rgb * ((1 - g_LightCoeff) + g_LightCoeff * dot(n, -g_LightDir));
	ps.Color.a	= color.a;
	return ps;
}

float4 MainPS(PSInput input) : SV_TARGET
{
	return input.Color;
}
